{"path":"src/app/api/admin/reviews/[id]/approve/route.ts","size":1184,"locked":false,"binary":false,"truncated":false,"content":"import { createClient } from \"@/lib/supabase/server\";\nimport { supabaseAdmin } from \"@/lib/supabase/admin\";\nimport { NextResponse } from \"next/server\";\n\nexport const dynamic = \"force-dynamic\";\n\nexport async function POST(\n  request: Request,\n  { params }: { params: { id: string } }\n) {\n  if (!supabaseAdmin) {\n    return NextResponse.json({ error: \"Database not connected\" }, { status: 503 });\n  }\n\n  const supabase = await createClient();\n  if (!supabase) return NextResponse.json({ error: \"Database not connected\" }, { status: 503 });\n\n  const { data: { user } } = await supabase.auth.getUser();\n  if (!user) return NextResponse.json({ error: \"Unauthorized\" }, { status: 401 });\n\n  const { data: isAdmin } = await supabase\n    .from(\"admin_users\")\n    .select(\"user_id\")\n    .eq(\"user_id\", user.id)\n    .maybeSingle();\n\n  if (!isAdmin) return NextResponse.json({ error: \"Forbidden\" }, { status: 403 });\n\n  const { error } = await supabaseAdmin\n    .from(\"reviews\")\n    .update({ approved: true })\n    .eq(\"id\", params.id);\n\n  if (error) return NextResponse.json({ error: error.message }, { status: 500 });\n\n  return NextResponse.redirect(new URL(\"/admin/reviews\", request.url));\n}\n"}